int singleNumber(int* nums, int numsSize)
{
    int ans = 0;
    int bit = 0;
    for(int i = 31; i >= 0; i--) {
        for(int j = 0; j < numsSize; j++)
        {
            bit += (nums[j] >> i) & 1; // 判断第 i 位的出现次数
        }
        ans = ans * 2 + (bit % 3); // 只保留出现一次的位
        bit = 0;
    }
    return ans; 
}